package xnsq

import (
	"fmt"
)

// 添加NSQ队列监听任务
//
//	rou	队列下标标识
//	fun	队列处理函数
func AddNsq(rou string, fun func(param []byte) error) error {
	return AddNsqConf(rou, &NsqFuncConf{
		Key:  rou,
		Func: fun,
	})
}

// 添加NSQ队列监听任务
//
//	rou	队列下标标识
//	cnf	队列任务监听配置，即x时间内最大运行x次
func AddNsqConf(rou string, cnf *NsqFuncConf) error {
	nsq_lock.Lock() // 携程锁-写锁
	defer nsq_lock.Unlock()
	if _, ok := nsq_runtime[rou]; ok {
		return fmt.Errorf("路由%s已存在", rou)
	}
	if cnf.Key == "" {
		cnf.Key = rou
	}
	nsq_runtime[rou] = cnf
	return nil
}
